<!DOCTYPE html><html><head>
      <title>OS-E05_guide</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      
      <link rel="stylesheet" href="file:////Users/roamwonder/.vscode/extensions/shd101wyy.markdown-preview-enhanced-0.5.9/node_modules/@shd101wyy/mume/dependencies/katex/katex.min.css">
      
      
      
      
      
      
      
      
      
      <style>
      /**
 * prism.js Github theme based on GitHub's theme.
 * @author Sam Clarke
 */
code[class*="language-"],
pre[class*="language-"] {
  color: #333;
  background: none;
  font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.4;

  -moz-tab-size: 8;
  -o-tab-size: 8;
  tab-size: 8;

  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
  padding: .8em;
  overflow: auto;
  /* border: 1px solid #ddd; */
  border-radius: 3px;
  /* background: #fff; */
  background: #f5f5f5;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
  padding: .1em;
  border-radius: .3em;
  white-space: normal;
  background: #f5f5f5;
}

.token.comment,
.token.blockquote {
  color: #969896;
}

.token.cdata {
  color: #183691;
}

.token.doctype,
.token.punctuation,
.token.variable,
.token.macro.property {
  color: #333;
}

.token.operator,
.token.important,
.token.keyword,
.token.rule,
.token.builtin {
  color: #a71d5d;
}

.token.string,
.token.url,
.token.regex,
.token.attr-value {
  color: #183691;
}

.token.property,
.token.number,
.token.boolean,
.token.entity,
.token.atrule,
.token.constant,
.token.symbol,
.token.command,
.token.code {
  color: #0086b3;
}

.token.tag,
.token.selector,
.token.prolog {
  color: #63a35c;
}

.token.function,
.token.namespace,
.token.pseudo-element,
.token.class,
.token.class-name,
.token.pseudo-class,
.token.id,
.token.url-reference .token.variable,
.token.attr-name {
  color: #795da3;
}

.token.entity {
  cursor: help;
}

.token.title,
.token.title .token.punctuation {
  font-weight: bold;
  color: #1d3e81;
}

.token.list {
  color: #ed6a43;
}

.token.inserted {
  background-color: #eaffea;
  color: #55a532;
}

.token.deleted {
  background-color: #ffecec;
  color: #bd2c00;
}

.token.bold {
  font-weight: bold;
}

.token.italic {
  font-style: italic;
}


/* JSON */
.language-json .token.property {
  color: #183691;
}

.language-markup .token.tag .token.punctuation {
  color: #333;
}

/* CSS */
code.language-css,
.language-css .token.function {
  color: #0086b3;
}

/* YAML */
.language-yaml .token.atrule {
  color: #63a35c;
}

code.language-yaml {
  color: #183691;
}

/* Ruby */
.language-ruby .token.function {
  color: #333;
}

/* Markdown */
.language-markdown .token.url {
  color: #795da3;
}

/* Makefile */
.language-makefile .token.symbol {
  color: #795da3;
}

.language-makefile .token.variable {
  color: #183691;
}

.language-makefile .token.builtin {
  color: #0086b3;
}

/* Bash */
.language-bash .token.keyword {
  color: #0086b3;
}

/* highlight */
pre[data-line] {
  position: relative;
  padding: 1em 0 1em 3em;
}
pre[data-line] .line-highlight-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  background-color: transparent;
  display: block;
  width: 100%;
}

pre[data-line] .line-highlight {
  position: absolute;
  left: 0;
  right: 0;
  padding: inherit 0;
  margin-top: 1em;
  background: hsla(24, 20%, 50%,.08);
  background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
  pointer-events: none;
  line-height: inherit;
  white-space: pre;
}

pre[data-line] .line-highlight:before, 
pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-start);
  position: absolute;
  top: .4em;
  left: .6em;
  min-width: 1em;
  padding: 0 .5em;
  background-color: hsla(24, 20%, 50%,.4);
  color: hsl(24, 20%, 95%);
  font: bold 65%/1.5 sans-serif;
  text-align: center;
  vertical-align: .3em;
  border-radius: 999px;
  text-shadow: none;
  box-shadow: 0 1px white;
}

pre[data-line] .line-highlight[data-end]:after {
  content: attr(data-end);
  top: auto;
  bottom: .4em;
}html body{font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,freesans,sans-serif;font-size:16px;line-height:1.6;color:#333;background-color:#fff;overflow:initial;box-sizing:border-box;word-wrap:break-word}html body>:first-child{margin-top:0}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{line-height:1.2;margin-top:1em;margin-bottom:16px;color:#000}html body h1{font-size:2.25em;font-weight:300;padding-bottom:.3em}html body h2{font-size:1.75em;font-weight:400;padding-bottom:.3em}html body h3{font-size:1.5em;font-weight:500}html body h4{font-size:1.25em;font-weight:600}html body h5{font-size:1.1em;font-weight:600}html body h6{font-size:1em;font-weight:600}html body h1,html body h2,html body h3,html body h4,html body h5{font-weight:600}html body h5{font-size:1em}html body h6{color:#5c5c5c}html body strong{color:#000}html body del{color:#5c5c5c}html body a:not([href]){color:inherit;text-decoration:none}html body a{color:#08c;text-decoration:none}html body a:hover{color:#00a3f5;text-decoration:none}html body img{max-width:100%}html body>p{margin-top:0;margin-bottom:16px;word-wrap:break-word}html body>ul,html body>ol{margin-bottom:16px}html body ul,html body ol{padding-left:2em}html body ul.no-list,html body ol.no-list{padding:0;list-style-type:none}html body ul ul,html body ul ol,html body ol ol,html body ol ul{margin-top:0;margin-bottom:0}html body li{margin-bottom:0}html body li.task-list-item{list-style:none}html body li>p{margin-top:0;margin-bottom:0}html body .task-list-item-checkbox{margin:0 .2em .25em -1.8em;vertical-align:middle}html body .task-list-item-checkbox:hover{cursor:pointer}html body blockquote{margin:16px 0;font-size:inherit;padding:0 15px;color:#5c5c5c;border-left:4px solid #d6d6d6}html body blockquote>:first-child{margin-top:0}html body blockquote>:last-child{margin-bottom:0}html body hr{height:4px;margin:32px 0;background-color:#d6d6d6;border:0 none}html body table{margin:10px 0 15px 0;border-collapse:collapse;border-spacing:0;display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}html body table th{font-weight:bold;color:#000}html body table td,html body table th{border:1px solid #d6d6d6;padding:6px 13px}html body dl{padding:0}html body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:bold}html body dl dd{padding:0 16px;margin-bottom:16px}html body code{font-family:Menlo,Monaco,Consolas,'Courier New',monospace;font-size:.85em !important;color:#000;background-color:#f0f0f0;border-radius:3px;padding:.2em 0}html body code::before,html body code::after{letter-spacing:-0.2em;content:"\00a0"}html body pre>code{padding:0;margin:0;font-size:.85em !important;word-break:normal;white-space:pre;background:transparent;border:0}html body .highlight{margin-bottom:16px}html body .highlight pre,html body pre{padding:1em;overflow:auto;font-size:.85em !important;line-height:1.45;border:#d6d6d6;border-radius:3px}html body .highlight pre{margin-bottom:0;word-break:normal}html body pre code,html body pre tt{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}html body pre code:before,html body pre tt:before,html body pre code:after,html body pre tt:after{content:normal}html body p,html body blockquote,html body ul,html body ol,html body dl,html body pre{margin-top:0;margin-bottom:16px}html body kbd{color:#000;border:1px solid #d6d6d6;border-bottom:2px solid #c7c7c7;padding:2px 4px;background-color:#f0f0f0;border-radius:3px}@media print{html body{background-color:#fff}html body h1,html body h2,html body h3,html body h4,html body h5,html body h6{color:#000;page-break-after:avoid}html body blockquote{color:#5c5c5c}html body pre{page-break-inside:avoid}html body table{display:table}html body img{display:block;max-width:100%;max-height:100%}html body pre,html body code{word-wrap:break-word;white-space:pre}}.markdown-preview{width:100%;height:100%;box-sizing:border-box}.markdown-preview .pagebreak,.markdown-preview .newpage{page-break-before:always}.markdown-preview pre.line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}.markdown-preview pre.line-numbers>code{position:relative}.markdown-preview pre.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:1em;font-size:100%;left:0;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-preview pre.line-numbers .line-numbers-rows>span{pointer-events:none;display:block;counter-increment:linenumber}.markdown-preview pre.line-numbers .line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}.markdown-preview .mathjax-exps .MathJax_Display{text-align:center !important}.markdown-preview:not([for="preview"]) .code-chunk .btn-group{display:none}.markdown-preview:not([for="preview"]) .code-chunk .status{display:none}.markdown-preview:not([for="preview"]) .code-chunk .output-div{margin-bottom:16px}.scrollbar-style::-webkit-scrollbar{width:8px}.scrollbar-style::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}.scrollbar-style::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for="html-export"]:not([data-presentation-mode]){position:relative;width:100%;height:100%;top:0;left:0;margin:0;padding:0;overflow:auto}html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{position:relative;top:0}@media screen and (min-width:914px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{padding:2em calc(50% - 457px + 2em)}}@media screen and (max-width:914px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for="html-export"]:not([data-presentation-mode]) .markdown-preview{font-size:14px !important;padding:1em}}@media print{html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn{display:none}}html body[for="html-export"]:not([data-presentation-mode]) #sidebar-toc-btn{position:fixed;bottom:8px;left:8px;font-size:28px;cursor:pointer;color:inherit;z-index:99;width:32px;text-align:center;opacity:.4}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] #sidebar-toc-btn{opacity:1}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc{position:fixed;top:0;left:0;width:300px;height:100%;padding:32px 0 48px 0;font-size:14px;box-shadow:0 0 4px rgba(150,150,150,0.33);box-sizing:border-box;overflow:auto;background-color:inherit}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar{width:8px}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-track{border-radius:10px;background-color:transparent}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc::-webkit-scrollbar-thumb{border-radius:5px;background-color:rgba(150,150,150,0.66);border:4px solid rgba(150,150,150,0.66);background-clip:content-box}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc a{text-decoration:none}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul{padding:0 1.6em;margin-top:.8em}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc li{margin-bottom:.8em}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .md-sidebar-toc ul{list-style-type:none}html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{left:300px;width:calc(100% -  300px);padding:2em calc(50% - 457px -  150px);margin:0;box-sizing:border-box}@media screen and (max-width:1274px){html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{padding:2em}}@media screen and (max-width:450px){html body[for="html-export"]:not([data-presentation-mode])[html-show-sidebar-toc] .markdown-preview{width:100%}}html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .markdown-preview{left:50%;transform:translateX(-50%)}html body[for="html-export"]:not([data-presentation-mode]):not([html-show-sidebar-toc]) .md-sidebar-toc{display:none}
h1 {
  font-size: 24px !important;
  text-align: center;
  border-bottom: 8px double;
}
h2 {
  font-size: 22px !important;
  border-bottom: 3px dashed;
}
h3 {
  font-size: 20px !important;
  border-bottom: 2px dashed;
}
h4 {
  font-size: 18px !important;
  border-bottom: 1px dashed;
}
h5 {
  font-size: 16px !important;
  border-bottom: 1px dotted;
}
h6 {
  font-size: 16px !important;
  border-bottom: 1px dotted;
}
body {
  font-size: 14px !important;
  counter-reset: h1counter;
}
.footnote-item {
  font-size: 14px !important;
}
hr {
  display: block;
  height: 0px !important;
  border: 0;
  border-top: 4px solid SlateGray !important;
  margin: 1em 0;
  padding: 0;
}
h1 {
  counter-reset: h2counter;
}
h2 {
  counter-reset: h3counter;
  counter-increment: h2counter;
}
h3 {
  counter-reset: h4counter;
  counter-increment: h3counter;
}
h4 {
  counter-reset: h5counter;
  counter-increment: h4counter;
}
h5 {
  counter-reset: h6counter;
  counter-increment: h5counter;
}
h6 {
  counter-increment: h6counter;
}
h2:before {
  content: counter(h2counter, decimal-leading-zero) ".\0000a0\0000a0";
}
h3:before {
  content: counter(h2counter, decimal-leading-zero) "." counter(h3counter, decimal-leading-zero) ".\0000a0\0000a0";
}
h4:before {
  content: counter(h2counter, decimal-leading-zero) "." counter(h3counter, decimal-leading-zero) "." counter(h4counter, decimal-leading-zero) ".\0000a0\0000a0";
}
h5:before {
  content: counter(h2counter, decimal-leading-zero) "." counter(h3counter, decimal-leading-zero) "." counter(h4counter, decimal-leading-zero) "." counter(h5counter, decimal-leading-zero) ".\0000a0\0000a0";
}
h6:before {
  content: counter(h2counter, decimal-leading-zero) "." counter(h3counter, decimal-leading-zero) "." counter(h4counter, decimal-leading-zero) "." counter(h5counter, decimal-leading-zero) "." counter(h6counter, decimal-leading-zero) ".\0000a0\0000a0";
}
ol {
  list-style-type: decimal-leading-zero;
}
.center_div {
  margin: auto;
  display: block;
  overflow: auto;
}
.attention,
.note_it {
  border: 2px dashed #007AAA;
  padding: 5px;
  font-weight: bold;
}
.note_it {
  text-align: center;
}
.bold_and_red {
  font-weight: bold;
  color: red;
}
.bold_and_blue {
  font-weight: bold;
  color: blue;
}
/*
.slides {
  // This will modify all slides.
}
.slides > section:nth-child(1) {
  // This will modify `the first slide`.
  //background-color: blue;
}
*/
/*
code {
    white-space:pre-wrap;
    white-space:-moz-pre-wrap;
    white-space:-pre-wrap;
    white-space:-o-pre-wrap;
    word-wrap:break-word;
}
*/
section * {
  font-family: "PingFang SC", "Courier New", Courier, monospace !important;
}
section h1 {
  font-size: 46px !important;
  font-weight: bolder !important;
  color: DarkGreen !important;
  text-transform: none !important;
  /*
    text-shadow: 0 1px 0 #ccc,
        0 2px 0 #c9c9c9,
        0 3px 0 #bbb,
        0 4px 0 #b9b9b9,
        0 5px 0 #aaa,
        0 6px 1px rgba(0, 0, 0, 0.1),
        0 0 5px rgba(0, 0, 0, 0.1),
        0 1px 3px rgba(0, 0, 0, 0.3),
        0 3px 5px rgba(0, 0, 0, 0.2),
        0 5px 10px rgba(0, 0, 0, 0.25),
        0 20px 20px rgba(0, 0, 0, 0.15) !important;
        */
}
section h2 {
  font-size: 34px !important;
  font-weight: bolder !important;
  color: Teal !important;
  margin-top: 0.5em !important;
  text-transform: none !important;
  /*
    text-shadow: 0 1px 0 #ccc,
        0 2px 0 #c9c9c9,
        0 3px 0 #bbb,
        0 4px 0 #b9b9b9,
        0 5px 0 #aaa,
        0 6px 1px rgba(0, 0, 0, 0.1),
        0 0 5px rgba(0, 0, 0, 0.1),
        0 1px 3px rgba(0, 0, 0, 0.3),
        0 3px 5px rgba(0, 0, 0, 0.2),
        0 5px 10px rgba(0, 0, 0, 0.25),
        0 20px 20px rgba(0, 0, 0, 0.15) !important;
        */
}
section h3 {
  font-size: 32px !important;
  font-weight: bolder !important;
  text-transform: none !important;
  /*
    text-shadow: rgba(0, 0, 0, 0.3) 0px 2px 6px !important;
    */
  font-family: 'Courier New', Courier, monospace !important;
}
section h2:before,
section h3::before,
section h4::before {
  content: none;
}
section {
  font-size: 32px !important;
}
.left_align {
  text-align: left !important;
}
section blockquote {
  font-size: 30px !important;
  font-family: 'Courier New', Courier, monospace !important;
  font-weight: bolder !important;
  text-align: left !important;
  width: 98% !important;
  line-height: 120% !important;
  color: #007AAA;
  border: dashed 2px #007AAA !important;
}
section blockquote li {
  font-style: normal !important;
}
section blockquote strong {
  color: darkgreen;
}
section pre {
  font-size: 26px !important;
  line-height: 120% !important;
}
section p {
  font-family: 'Courier New', Courier, monospace !important;
  font-style: normal !important;
  font-weight: normal !important;
}
section h1 + p img {
  max-height: 500px !important;
}
section h2 + p img {
  max-height: 500px !important;
}

      </style>
    </head>
    <body for="html-export">
      <div class="mume markdown-preview  ">
      <h1 class="mume-header" id="os-e05-%E5%AE%9E%E9%AA%8C%E9%A1%B9%E7%9B%AE05-bash%E6%A8%A1%E5%9D%97%E5%8C%96%E7%BC%96%E7%A8%8B%E4%B8%8E%E5%A4%9A%E8%BF%9B%E7%A8%8B%E5%B9%B6%E5%8F%91">OS-E05 &#x5B9E;&#x9A8C;&#x9879;&#x76EE;05&#xFF1A; Bash&#x6A21;&#x5757;&#x5316;&#x7F16;&#x7A0B;&#x4E0E;&#x591A;&#x8FDB;&#x7A0B;&#x5E76;&#x53D1;</h1>

<div class="code-chunk" data-id="code-chunk-id-0" data-cmd="toc"><div class="input-div"><div class="btn-group"><div class="run-btn btn"><span>&#x25B6;&#xFE0E;</span></div><div class="run-all-btn btn">all</div></div><div class="status">running...</div></div><div class="output-div"></div></div><ol>
<li><a href="#%E5%AE%9E%E9%AA%8C%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF">&#x5B9E;&#x9A8C;&#x57FA;&#x672C;&#x4FE1;&#x606F;</a></li>
<li><a href="#%E5%AE%9E%E9%AA%8C%E5%89%8D%E7%BD%AE%E6%9D%A1%E4%BB%B6">&#x5B9E;&#x9A8C;&#x524D;&#x7F6E;&#x6761;&#x4EF6;</a></li>
<li><a href="#%E5%AE%9E%E9%AA%8C%E9%A2%84%E5%A4%87%E7%9F%A5%E8%AF%86">&#x5B9E;&#x9A8C;&#x9884;&#x5907;&#x77E5;&#x8BC6;</a></li>
<li><a href="#%E5%AE%9E%E9%AA%8C%E6%B3%A8%E6%84%8F%E4%B8%8E%E8%AF%B4%E6%98%8E">&#x5B9E;&#x9A8C;&#x6CE8;&#x610F;&#x4E0E;&#x8BF4;&#x660E;</a></li>
<li><a href="#%E5%AE%9E%E9%AA%8C%E5%86%85%E5%AE%B9%E4%B8%8E%E5%AE%9E%E9%AA%8C%E6%8C%87%E5%BC%95">&#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x4E0E;&#x5B9E;&#x9A8C;&#x6307;&#x5F15;</a>
<ol>
<li><a href="#microscope-%E5%AE%9E%E9%AA%8C%E5%86%85%E5%AE%B9%E5%85%B7%E4%BD%93%E4%BB%BB%E5%8A%A1">&#x1F52C; &#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x5177;&#x4F53;&#x4EFB;&#x52A1;</a></li>
<li><a href="#ticket-%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C%E5%8F%82%E8%80%83%E6%88%AA%E5%9B%BE">&#x1F3AB; &#x5B9E;&#x9A8C;&#x7ED3;&#x679C;&#x53C2;&#x8003;&#x622A;&#x56FE;</a></li>
<li><a href="#bookmark-%E5%AE%9E%E9%AA%8C%E5%86%85%E5%AE%B9%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86">&#x1F516; &#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x76F8;&#x5173;&#x77E5;&#x8BC6;</a>
<ol>
<li><a href="#bash%E6%A8%A1%E5%9D%97%E5%8C%96">Bash&#x6A21;&#x5757;&#x5316;</a></li>
<li><a href="#bash%E5%A4%9A%E8%BF%9B%E7%A8%8B">Bash&#x591A;&#x8FDB;&#x7A0B;</a></li>
<li><a href="#bash%E5%91%BD%E4%BB%A4%E8%BF%90%E8%A1%8C%E4%B8%8E%E7%AE%97%E6%9C%AF%E8%BF%90%E7%AE%97">Bash&#x547D;&#x4EE4;&#x8FD0;&#x884C;&#x4E0E;&#x7B97;&#x672F;&#x8FD0;&#x7B97;</a></li>
</ol>
</li>
</ol>
</li>
<li><a href="#faq">FAQ</a></li>
</ol>
<h2 class="mume-header" id="%E5%AE%9E%E9%AA%8C%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF">&#x5B9E;&#x9A8C;&#x57FA;&#x672C;&#x4FE1;&#x606F;</h2>

<ol>
<li>&#x5B9E;&#x9A8C;&#x6027;&#x8D28;&#xFF1A;&#x8BBE;&#x8BA1;&#x6027;</li>
<li>&#x5B9E;&#x9A8C;&#x5B66;&#x65F6;&#xFF1A;6</li>
<li>&#x5B9E;&#x9A8C;&#x76EE;&#x7684;&#x4E0E;&#x8981;&#x6C42;&#xFF1A;
<ol>
<li>&#x7406;&#x89E3;&#x6A21;&#x5757;&#x5316;&#x7F16;&#x7A0B;&#x7684;&#x601D;&#x60F3;&#x4E0E;&#x4F18;&#x52BF;</li>
<li>&#x638C;&#x63E1;<code>bash</code>&#x6A21;&#x5757;&#x5316;&#x7F16;&#x7A0B;&#x7684;&#x65B9;&#x6CD5;</li>
<li>&#x7406;&#x89E3;&#x591A;&#x8FDB;&#x7A0B;/&#x591A;&#x7EBF;&#x7A0B;&#x7F16;&#x7A0B;&#x7684;&#x4F18;&#x52BF;&#x548C;&#x9002;&#x7528;&#x573A;&#x666F;</li>
<li>&#x638C;&#x63E1;<code>bash</code>&#x591A;&#x8FDB;&#x7A0B;&#x7F16;&#x7A0B;&#x7684;&#x65B9;&#x6CD5;</li>
</ol>
</li>
<li>&#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#xFF1A;
<ol>
<li>&#x5229;&#x7528;<code>function</code>&#x548C;<code>source</code>&#x7F16;&#x5199;&#x591A;&#x6587;&#x4EF6;&#x811A;&#x672C;&#xFF0C;&#x5206;&#x522B;&#x5B9E;&#x73B0;&#x4E32;&#x884C;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x548C;&#x5E76;&#x53D1;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#xFF0C;&#x5E76;&#x5BF9;&#x6BD4;&#x8FD0;&#x884C;&#x65F6;&#x95F4;</li>
<li>&#x5BF9;&#x6BD4;&#x601D;&#x8003;&#x4F7F;&#x7528;<code>sleep 0.1</code>&#x4E0E;&#x4E0D;&#x4F7F;&#x7528;<code>sleep 0.1</code>&#x7684;&#x8FD0;&#x884C;&#x7ED3;&#x679C;&#x4EA7;&#x751F;&#x5DEE;&#x522B;&#x7684;&#x539F;&#x56E0;&#x662F;&#x4EC0;&#x4E48;</li>
<li>&#x5BF9;&#x6BD4;&#x601D;&#x8003;&#x5E76;&#x53D1;&#x5728;&#x4EC0;&#x4E48;&#x573A;&#x666F;&#x4E0B;&#x6548;&#x7387;&#x80FD;&#x663E;&#x8457;&#x63D0;&#x5347;&#xFF0C;&#x4EC0;&#x4E48;&#x573A;&#x666F;&#x4E0B;&#x6548;&#x7387;&#x5E76;&#x4E0D;&#x80FD;&#x663E;&#x8457;&#x63D0;&#x5347;</li>
</ol>
</li>
<li>&#x5B9E;&#x9A8C;&#x6761;&#x4EF6;&#xFF1A;
<ol>
<li>&#x786C;&#x4EF6;&#x73AF;&#x5883;&#xFF1A;<code>PC</code>(<code>Personal Computer</code>)</li>
<li>&#x8F6F;&#x4EF6;&#x73AF;&#x5883;&#xFF1A;<code>VirtualBox</code> + <code>CentOS</code></li>
</ol>
</li>
</ol>
<h2 class="mume-header" id="%E5%AE%9E%E9%AA%8C%E5%89%8D%E7%BD%AE%E6%9D%A1%E4%BB%B6">&#x5B9E;&#x9A8C;&#x524D;&#x7F6E;&#x6761;&#x4EF6;</h2>

<p><code>Linux</code>&#x73AF;&#x5883;&#xFF1A; &#x53EF;&#x4EE5;&#x57FA;&#x4E8E;&#x865A;&#x62DF;&#x673A;&#x73AF;&#x5883;&#x4E0B;&#x5B89;&#x88C5;&#x7684;<code>Linux</code>&#xFF0C;&#x4E5F;&#x53EF;&#x57FA;&#x4E8E;<code>Windows 10 WSL</code>&#x73AF;&#x5883;&#x4E0B;&#x5B89;&#x88C5;&#x7684;<code>Linux</code>&#xFF0C;&#x4E5F;&#x53EF;&#x57FA;&#x4E8E;&#x88F8;&#x673A;&#x73AF;&#x5883;&#x4E0B;&#x5B89;&#x88C5;&#x7684;<code>Linux</code>&#xFF0C;&#x4E5F;&#x53EF;&#x57FA;&#x4E8E;&#x4E91;&#x670D;&#x52A1;&#x5668;&#x73AF;&#x5883;&#x4E0B;&#x5B89;&#x88C5;&#x7684;<code>Linux</code>&#x3002;</p>
<h2 class="mume-header" id="%E5%AE%9E%E9%AA%8C%E9%A2%84%E5%A4%87%E7%9F%A5%E8%AF%86">&#x5B9E;&#x9A8C;&#x9884;&#x5907;&#x77E5;&#x8BC6;</h2>

<p>&#x8BF7; <strong>&#x81F3;&#x5C11;</strong> &#x9605;&#x8BFB;<a href="https://wangdoc.com/bash/">&#x962E;&#x4E00;&#x5CF0; Bash &#x811A;&#x672C;&#x6559;&#x7A0B;</a>&#x4E2D;&#x7684;&#x4EE5;&#x4E0B;&#x5185;&#x5BB9;&#xFF1A;</p>
<ol>
<li>&#x5FAA;&#x73AF;&#xFF1A; <a href="https://wangdoc.com/bash/loop.html">https://wangdoc.com/bash/loop.html</a></li>
<li>&#x7B97;&#x672F;&#x8FD0;&#x7B97;&#xFF1A; <a href="https://wangdoc.com/bash/arithmetic.html">https://wangdoc.com/bash/arithmetic.html</a></li>
<li>&#x51FD;&#x6570;&#xFF1A; <a href="https://wangdoc.com/bash/function.html">https://wangdoc.com/bash/function.html</a></li>
</ol>
<h2 class="mume-header" id="%E5%AE%9E%E9%AA%8C%E6%B3%A8%E6%84%8F%E4%B8%8E%E8%AF%B4%E6%98%8E">&#x5B9E;&#x9A8C;&#x6CE8;&#x610F;&#x4E0E;&#x8BF4;&#x660E;</h2>

<ol>
<li>&#x5B9E;&#x9A8C;&#x6307;&#x5F15;&#x4E2D;&#x4F7F;&#x7528;&#x5C16;&#x62EC;&#x53F7;<code>&lt;&gt;</code>&#x8868;&#x793A;&#x952E;&#x76D8;&#x6309;&#x952E;&#xFF0C;&#x5982;&#xFF1A;<code>&lt;CTRL&gt;</code>&#x4EE3;&#x8868;control&#x952E;&#xFF0C;<code>&lt;j&gt;</code>&#x4EE3;&#x8868;j&#x952E;</li>
<li>&#x5B9E;&#x9A8C;&#x4E2D;&#x8BF7;&#x5C06;<code>EN_and_FN_in_PY</code>&#x6539;&#x6210;&#x60A8;&#x7684;&#x5B66;&#x53F7;&#x548C;&#x5168;&#x540D;&#x7684;&#x62FC;&#x97F3;&#xFF0C;&#x5982;&#x201C;68zhangsan&#x201D;</li>
<li>&#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x4E0E;&#x5B9E;&#x9A8C;&#x6307;&#x5F15;&#x4E2D;&#x5404;&#x5B50;&#x5185;&#x5BB9;&#x5305;&#x542B;&#x4E09;&#x90E8;&#x5206;&#xFF1A;
<ol>
<li><strong>&#x1F52C; &#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x5177;&#x4F53;&#x4EFB;&#x52A1;</strong> ==&gt; &#x5B9E;&#x9A8C;&#x7684;&#x5177;&#x4F53;&#x4EFB;&#x52A1;&#x53CA;&#x6B65;&#x9AA4;</li>
<li><strong>&#x1F3AB; &#x5B9E;&#x9A8C;&#x7ED3;&#x679C;&#x53C2;&#x8003;&#x622A;&#x56FE;</strong> ==&gt; &#x5B9E;&#x9A8C;&#x7684;&#x53C2;&#x8003;&#x7ED3;&#x679C;&#x622A;&#x56FE;</li>
<li><strong>&#x1F516; &#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x76F8;&#x5173;&#x77E5;&#x8BC6;</strong> ==&gt; &#x5B9E;&#x9A8C;&#x6D89;&#x53CA;&#x7684;&#x76F8;&#x5173;&#x77E5;&#x8BC6;</li>
</ol>
</li>
</ol>
<h2 class="mume-header" id="%E5%AE%9E%E9%AA%8C%E5%86%85%E5%AE%B9%E4%B8%8E%E5%AE%9E%E9%AA%8C%E6%8C%87%E5%BC%95">&#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x4E0E;&#x5B9E;&#x9A8C;&#x6307;&#x5F15;</h2>

<h3 class="mume-header" id="microscope-%E5%AE%9E%E9%AA%8C%E5%86%85%E5%AE%B9%E5%85%B7%E4%BD%93%E4%BB%BB%E5%8A%A1">&#x1F52C; &#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x5177;&#x4F53;&#x4EFB;&#x52A1;</h3>

<p>&#x5229;&#x7528;<code>function</code>&#x548C;<code>source</code>&#x7F16;&#x5199;&#x591A;&#x6587;&#x4EF6;&#x811A;&#x672C;&#xFF0C;&#x5206;&#x522B;&#x5B9E;&#x73B0;&#x4E32;&#x884C;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x548C;&#x5E76;&#x53D1;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#xFF0C;&#x5E76;&#x5BF9;&#x6BD4;&#x8FD0;&#x884C;&#x65F6;&#x95F4;&#xFF0C;&#x5177;&#x4F53;&#x8981;&#x6C42;&#x5982;&#x4E0B;&#xFF1A;</p>
<ol>
<li>&#x7A0B;&#x5E8F;&#x7684;&#x6A21;&#x5757;&#x7ED3;&#x6784;&#x548C;&#x529F;&#x80FD;
<ol>
<li><code>main.sh</code>&#xFF1A; &#x8BE5;&#x811A;&#x672C;&#x6587;&#x4EF6;&#x6709;&#x4E00;&#x4E2A;&#x51FD;&#x6570;<code>main()</code>&#xFF0C; <strong><code>main()</code>&#x662F;&#x811A;&#x672C;&#x7A0B;&#x5E8F;&#x7684;&#x5165;&#x53E3;&#x51FD;&#x6570;&#xFF0C;&#x5B9E;&#x73B0;&#x7A0B;&#x5E8F;&#x7684;&#x4E1A;&#x52A1;&#x903B;&#x8F91;</strong> &#xFF0C;<code>main()</code>&#x63A5;&#x53D7;&#x4E24;&#x4E2A;&#x53C2;&#x6570;&#xFF0C;&#x7B2C;1&#x4E2A;&#x53C2;&#x6570;&#x8868;&#x793A;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x7684;&#x76EE;&#x5F55;&#xFF0C;&#x7B2C;2&#x4E2A;&#x53C2;&#x6570;&#x8868;&#x793A;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x7684;&#x6570;&#x91CF;</li>
<li><code>seq_create_files.sh</code>&#xFF1A; &#x8BE5;&#x811A;&#x672C;&#x6587;&#x4EF6;&#x6709;&#x4E00;&#x4E2A;&#x51FD;&#x6570;<code>f_seq_create_files()</code>&#xFF0C; <strong>&#x8BE5;&#x51FD;&#x6570;&#x5B9E;&#x73B0;&#x5728;&#x6307;&#x5B9A;&#x7684;&#x76EE;&#x5F55;&#x4E0B;&#x4E32;&#x884C;&#x521B;&#x5EFA;&#x6307;&#x5B9A;&#x6570;&#x91CF;&#x7684;&#x6587;&#x4EF6;</strong> &#xFF0C;&#x8BE5;&#x51FD;&#x6570;&#x63A5;&#x53D7;&#x4E24;&#x4E2A;&#x53C2;&#x6570;&#xFF0C;&#x7B2C;1&#x4E2A;&#x53C2;&#x6570;&#x8868;&#x793A;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x7684;&#x6240;&#x5728;&#x76EE;&#x5F55;&#xFF0C;&#x7B2C;2&#x4E2A;&#x53C2;&#x6570;&#x8868;&#x793A;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x7684;&#x6570;&#x91CF;</li>
<li><code>con_create_files.sh</code>&#xFF1A; &#x8BE5;&#x811A;&#x672C;&#x6587;&#x4EF6;&#x6709;&#x4E00;&#x4E2A;&#x51FD;&#x6570;<code>f_con_create_files()</code>&#xFF0C; <strong>&#x8BE5;&#x51FD;&#x6570;&#x5B9E;&#x73B0;&#x5728;&#x6307;&#x5B9A;&#x7684;&#x76EE;&#x5F55;&#x4E0B;&#x5B9E;&#x73B0;&#x5E76;&#x53D1;&#x521B;&#x5EFA;&#x6307;&#x5B9A;&#x6570;&#x91CF;&#x7684;&#x6587;&#x4EF6;</strong> &#xFF0C;&#x8BE5;&#x51FD;&#x6570;&#x63A5;&#x53D7;&#x4E24;&#x4E2A;&#x53C2;&#x6570;&#xFF0C;&#x7B2C;1&#x4E2A;&#x53C2;&#x6570;&#x8868;&#x793A;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x7684;&#x6240;&#x5728;&#x76EE;&#x5F55;&#xFF0C;&#x7B2C;2&#x4E2A;&#x53C2;&#x6570;&#x8868;&#x793A;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x7684;&#x6570;&#x91CF;</li>
<li><code>create_file.sh</code>&#xFF1A; &#x8BE5;&#x811A;&#x672C;&#x6587;&#x4EF6;&#x6709;&#x4E00;&#x4E2A;&#x51FD;&#x6570;<code>f_create_file()</code>&#xFF0C;<strong>&#x8BE5;&#x51FD;&#x6570;&#x5B9E;&#x73B0;&#x5177;&#x4F53;&#x521B;&#x5EFA;&#x6587;&#x4EF6;</strong> &#xFF0C;&#x8BE5;&#x51FD;&#x6570;&#x63A5;&#x53D7;&#x4E00;&#x4E2A;&#x53C2;&#x6570;&#xFF0C;&#x8BE5;&#x53C2;&#x6570;&#x8868;&#x793A;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x7684;&#x8DEF;&#x5F84;&#xFF08;&#x542B;&#x6587;&#x4EF6;&#x540D;&#xFF09;</li>
</ol>
</li>
<li>&#x7A0B;&#x5E8F;&#x7684;&#x8FD0;&#x884C;&#x903B;&#x8F91;&#xFF08;&#x4E1A;&#x52A1;&#x903B;&#x8F91;&#xFF09;
<ol>
<li><code>main.sh</code>&#x811A;&#x672C;&#x6587;&#x4EF6;&#x4E2D;&#x8C03;&#x7528;<code>main()</code>&#x51FD;&#x6570;&#xFF0C;&#x4F20;&#x9012;<code>./&lt;EN_and_FN_in_PY&gt;</code>&#x548C;<code>100</code>&#x7ED9;<code>main()</code>&#x51FD;&#x6570;&#xFF08;&#x8BF7;&#x5C06;<code>EN_and_FN_in_PY</code>&#x6539;&#x6210;&#x60A8;&#x7684;&#x5B66;&#x53F7;&#x548C;&#x5168;&#x540D;&#x7684;&#x62FC;&#x97F3;&#xFF0C;&#x5982;&#x201C;68zhangsan&#x201D;&#xFF09;</li>
<li><code>main()</code>&#x51FD;&#x6570;&#x4E2D;&#xFF0C;&#x5728;&#x7B2C;1&#x53C2;&#x6570;&#x4F20;&#x9012;&#x7684;&#x76EE;&#x5F55;&#x8DEF;&#x5F84;&#x4E0B;&#x5206;&#x522B;&#x521B;&#x5EFA;<code>seq</code>&#x548C;<code>con</code>&#x76EE;&#x5F55;&#xFF0C;&#x5206;&#x522B;&#x4F20;&#x9012;&#x7ED9;<code>f_seq_create_files()</code>&#x548C;<code>f_con_create_files()</code>&#xFF0C;&#x5C06;<code>100</code>&#x4E5F;&#x4F20;&#x9012;&#x7ED9;<code>f_seq_create_files()</code>&#x548C;<code>f_con_create_files()</code></li>
<li><code>f_create_file()</code>&#x4E2D;&#x4E3A;&#x4E86;&#x4F53;&#x73B0;&#x4E32;&#x884C;&#x548C;&#x5E76;&#x53D1;&#x7684;&#x5DEE;&#x522B;&#xFF0C;&#x5728;&#x8BE5;&#x51FD;&#x6570;&#x4E2D;&#x8C03;&#x7528;<code>sleep 0.1</code></li>
</ol>
</li>
<li>&#x8BF7;&#x6CE8;&#x91CA;&#x6389;<code>f_create_file()</code>&#x4E2D;&#x7684;<code>sleep 0.1</code>&#xFF0C;&#x5E76;&#x5C06;&#x521B;&#x5EFA;&#x6587;&#x4EF6;&#x7684;&#x6570;&#x91CF;&#x8C03;&#x9AD8;&#x81F3;<code>1000</code>&#xFF0C;&#x518D;&#x6B21;&#x8FD0;&#x884C;&#xFF0C;&#x7136;&#x540E;&#x5BF9;&#x6BD4;&#x601D;&#x8003;&#xFF1A;
<ol>
<li>&#x5BF9;&#x6BD4;&#x601D;&#x8003;&#x4F7F;&#x7528;<code>sleep 0.1</code>&#x4E0E;&#x4E0D;&#x4F7F;&#x7528;<code>sleep 0.1</code>&#x7684;&#x8FD0;&#x884C;&#x7ED3;&#x679C;&#x4EA7;&#x751F;&#x5DEE;&#x522B;&#x7684;&#x539F;&#x56E0;&#x662F;&#x4EC0;&#x4E48;</li>
<li>&#x5BF9;&#x6BD4;&#x601D;&#x8003;&#x5E76;&#x53D1;&#x5728;&#x4EC0;&#x4E48;&#x573A;&#x666F;&#x4E0B;&#x6548;&#x7387;&#x80FD;&#x663E;&#x8457;&#x63D0;&#x5347;&#xFF0C;&#x4EC0;&#x4E48;&#x573A;&#x666F;&#x4E0B;&#x6548;&#x7387;&#x5E76;&#x4E0D;&#x80FD;&#x663E;&#x8457;&#x63D0;&#x5347;&#xFF08;&#x6709;&#x65F6;&#x751A;&#x81F3;&#x5E26;&#x6765;&#x53CD;&#x6548;&#x679C;&#xFF09;</li>
</ol>
</li>
</ol>
<p><!--?xml version="1.0" encoding="UTF-8" standalone="no"?--><svg xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" contentscripttype="application/ecmascript" contentstyletype="text/css" height="330px" preserveAspectRatio="none" style="width:693px;height:330px;" version="1.1" viewBox="0 0 693 330" width="693px" zoomAndPan="magnify"><defs><filter height="300%" id="f13czkos8sand1" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="44" x2="44" y1="38.4883" y2="290.3516"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="180" x2="180" y1="38.4883" y2="290.3516"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="345" x2="345" y1="38.4883" y2="290.3516"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="503" x2="503" y1="38.4883" y2="290.3516"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="637" x2="637" y1="38.4883" y2="290.3516"/><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="68" x="8" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="54" x="15" y="23.5352">main.sh</text><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="68" x="8" y="289.3516"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="54" x="15" y="309.8867">main.sh</text><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="58" x="149" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="44" x="156" y="23.5352">main()</text><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="58" x="149" y="289.3516"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="44" x="156" y="309.8867">main()</text><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="271" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="130" x="278" y="23.5352">f_seq_create_files()</text><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="144" x="271" y="289.3516"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="130" x="278" y="309.8867">f_seq_create_files()</text><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="429" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="131" x="436" y="23.5352">f_con_create_files()</text><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="145" x="429" y="289.3516"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="131" x="436" y="309.8867">f_con_create_files()</text><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="588" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="80" x="595" y="23.5352">create_file()</text><rect fill="#FEFECE" filter="url(#f13czkos8sand1)" height="30.4883" style="stroke: #A80036; stroke-width: 1.5;" width="94" x="588" y="289.3516"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="80" x="595" y="309.8867">create_file()</text><polygon fill="#A80036" points="168,65.7988,178,69.7988,168,73.7988,172,69.7988" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="44" x2="174" y1="69.7988" y2="69.7988"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="51" y="65.0566">directory, number</text><polygon fill="#A80036" points="333,95.1094,343,99.1094,333,103.1094,337,99.1094" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="180" x2="339" y1="99.1094" y2="99.1094"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="141" x="187" y="94.3672">seq_directory, number</text><polygon fill="#A80036" points="625,124.4199,635,128.4199,625,132.4199,629,128.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="345" x2="631" y1="128.4199" y2="128.4199"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="54" x="352" y="123.6777">filename</text><polygon fill="#A80036" points="356,138.4199,346,142.4199,356,146.4199,352,142.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="350" x2="636" y1="142.4199" y2="142.4199"/><polygon fill="#A80036" points="191,152.4199,181,156.4199,191,160.4199,187,156.4199" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="185" x2="344" y1="156.4199" y2="156.4199"/><polygon fill="#A80036" points="491.5,181.7305,501.5,185.7305,491.5,189.7305,495.5,185.7305" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="180" x2="497.5" y1="185.7305" y2="185.7305"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="142" x="187" y="180.9883">con_directory, number</text><polygon fill="#A80036" points="625,211.041,635,215.041,625,219.041,629,215.041" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="503.5" x2="631" y1="215.041" y2="215.041"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="54" x="510.5" y="210.2988">filename</text><polygon fill="#A80036" points="514.5,225.041,504.5,229.041,514.5,233.041,510.5,229.041" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="508.5" x2="636" y1="229.041" y2="229.041"/><polygon fill="#A80036" points="191,239.041,181,243.041,191,247.041,187,243.041" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="185" x2="502.5" y1="243.041" y2="243.041"/><polygon fill="#A80036" points="55,268.3516,45,272.3516,55,276.3516,51,272.3516" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="49" x2="179" y1="272.3516" y2="272.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="23" x="61" y="267.6094">end</text><!--MD5=[b86bc49f58f90e37d75a51a6bde9c168]
@startuml
participant "main.sh" as main_sh
participant "main()" as main
participant "f_seq_create_files()" as seq_create
participant "f_con_create_files()" as con_create
participant "create_file()" as create_file

main_sh -> main: directory, number
main -> seq_create: seq_directory, number
seq_create -> create_file: filename
create_file - -> seq_create
seq_create - -> main
main -> con_create: con_directory, number
con_create -> create_file: filename
create_file - -> con_create
con_create - -> main
main - -> main_sh: end
@enduml

PlantUML version 1.2020.10(Sun May 17 17:35:57 CST 2020)
(MIT source distribution)
Java Runtime: Java(TM) SE Runtime Environment
JVM: Java HotSpot(TM) 64-Bit Server VM
Java Version: 1.8.0_91-b14
Operating System: Mac OS X
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg></p><h3 class="mume-header" id="ticket-%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C%E5%8F%82%E8%80%83%E6%88%AA%E5%9B%BE">&#x1F3AB; &#x5B9E;&#x9A8C;&#x7ED3;&#x679C;&#x53C2;&#x8003;&#x622A;&#x56FE;</h3>

<p><img src="./assets_image/100_sleep.png" alt></p>
<p><img src="./assets_image/1000_nosleep.png" alt></p>
<h3 class="mume-header" id="bookmark-%E5%AE%9E%E9%AA%8C%E5%86%85%E5%AE%B9%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86">&#x1F516; &#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x76F8;&#x5173;&#x77E5;&#x8BC6;</h3>

<h4 class="mume-header" id="bash%E6%A8%A1%E5%9D%97%E5%8C%96">Bash&#x6A21;&#x5757;&#x5316;</h4>

<ol>
<li><code>function</code>&#xFF1A; <code>function</code>&#x662F;&#x5B9E;&#x73B0;<code>code reuse</code>&#x548C;<code>modular programming</code>&#x7684;&#x57FA;&#x7840;&#xFF0C;&#x4E0E;<code>command</code>&#x6216;<code>shell script</code>&#x4E0D;&#x540C;&#x7684;&#x662F;&#xFF0C;<code>function</code>&#x5728;&#x5F53;&#x524D;<code>shell</code>&#x73AF;&#x5883;&#x4E2D;&#x8FD0;&#x884C;&#xFF08;&#x811A;&#x672C;&#x53EF;&#x901A;&#x8FC7;<code>source</code>&#x5728;&#x5F53;&#x524D;<code>shell</code>&#x73AF;&#x5883;&#x4E0B;&#x8FD0;&#x884C;&#xFF09;&#xFF0C;&#x8C03;&#x7528;<code>function</code>&#x7684;&#x8BED;&#x6CD5;&#x4E0E;<code>shell script</code>&#x548C;<code>command</code>&#x4E00;&#x6837;&#xFF0C;&#x56E0;&#x6B64;&#xFF0C;&#x4E3A;&#x4E86;&#x663E;&#x5F0F;&#x533A;&#x5206;<code>function</code>&#xFF0C;&#x5EFA;&#x8BAE;&#x5728;<code>function name</code>&#x4E4B;&#x524D;&#x52A0;&#x4E0A;<code>f_</code>&#x6216;&#x5176;&#x5B83;&#x4FBF;&#x4E8E;&#x8BC6;&#x522B;&#x7684;&#x524D;&#x7F00;</li>
<li><code>function script</code>&#xFF1A; &#x5C06;<code>function</code>&#x7EC4;&#x7EC7;&#x5728;<code>function script</code>&#x6587;&#x4EF6;&#x4E2D;&#xFF0C;&#x6709;&#x5229;&#x4E8E;&#x8FDB;&#x4E00;&#x6B65;<code>code reuse</code>&#x548C;<code>modular programming</code></li>
<li><code>source</code>&#x547D;&#x4EE4;&#x6216;<code>.</code>&#x547D;&#x4EE4;&#xFF08;&#x70B9;&#x547D;&#x4EE4;&#xFF09;&#xFF1A; &#x5728;&#x5F53;&#x524D;<code>shell</code>&#x73AF;&#x5883;&#x4E0B;&#x8FD0;&#x884C;<code>script</code>&#xFF08;&#x800C;&#x4E0D;&#x662F;&#x65B0;&#x5EFA;&#x4E00;&#x4E2A;<code>shell</code>&#x8FDB;&#x7A0B;&#xFF09;&#xFF0C;&#x88AB;&#x8FD0;&#x884C;<code>script</code>&#x7684;<code>variable</code>&#x548C;<code>function</code>&#x5728;&#x5F53;&#x524D;<code>shell</code>&#x4E2D;&#x6709;&#x6548;&#xFF08;&#x4E0D;&#x4F7F;&#x7528;<code>source</code>&#x8FD0;&#x884C;<code>script</code>&#x65F6;&#x4E3A;&#x5B50;<code>shell</code>&#x4E2D;&#x8FD0;&#x884C;&#xFF0C;&#x88AB;&#x8FD0;&#x884C;<code>script</code>&#x7684;<code>variable</code>&#x548C;<code>function</code>&#x5728;&#x5F53;&#x524D;<code>shell</code>&#x4E2D;&#x65E0;&#x6548;&#xFF09;&#xFF0C;<code>source</code>&#x5728;<code>${PATH}</code>&#x73AF;&#x5883;&#x53D8;&#x91CF;&#x8DEF;&#x5F84;&#x4E0A;&#x5BFB;&#x627E;<code>script</code>&#x6216;<code>command</code></li>
</ol>
<h4 class="mume-header" id="bash%E5%A4%9A%E8%BF%9B%E7%A8%8B">Bash&#x591A;&#x8FDB;&#x7A0B;</h4>

<ol>
<li><code>&amp;</code>&#xFF1A; &#x540E;&#x53F0;&#x8FD0;&#x884C;&#xFF0C;&#x5F53;&#x524D;<code>shell</code>&#x4E0D;&#x5FC5;&#x963B;&#x585E;&#x7B49;&#x5F85;&#x8FD0;&#x884C;&#x7ED3;&#x679C;&#x800C;&#x76F4;&#x63A5;&#x8FD0;&#x884C;&#x4E0B;&#x4E00;&#x6761;&#x547D;&#x4EE4;</li>
<li><code>wait</code>&#x547D;&#x4EE4;&#xFF1A; &#x7B49;&#x5F85;&#x6240;&#x6709;&#x5B50;&#x8FDB;&#x7A0B;&#x8FD0;&#x884C;&#x5B8C;&#x6BD5;</li>
<li><code>sleep</code>&#x547D;&#x4EE4;&#xFF1A; &#x8FDB;&#x7A0B;&#x4F11;&#x7720;&#x6307;&#x5B9A;&#x79D2;&#x6570;</li>
</ol>
<h4 class="mume-header" id="bash%E5%91%BD%E4%BB%A4%E8%BF%90%E8%A1%8C%E4%B8%8E%E7%AE%97%E6%9C%AF%E8%BF%90%E7%AE%97">Bash&#x547D;&#x4EE4;&#x8FD0;&#x884C;&#x4E0E;&#x7B97;&#x672F;&#x8FD0;&#x7B97;</h4>

<ol>
<li><code>$()</code>&#x8868;&#x8FBE;&#x5F0F;&#xFF1A; &#x8FD0;&#x884C;&#x547D;&#x4EE4;&#x5E76;&#x8FD4;&#x56DE;&#x8FD0;&#x884C;&#x7ED3;&#x679C;</li>
<li><code>$(())</code>&#x8868;&#x8FBE;&#x5F0F;&#xFF1A; &#x8FDB;&#x884C;&#x6574;&#x578B;&#x7B97;&#x672F;&#x8FD0;&#x7B97;&#x5E76;&#x8FD4;&#x56DE;&#x8FD0;&#x7B97;&#x7ED3;&#x679C;</li>
</ol>
<h2 class="mume-header" id="faq">FAQ</h2>


      </div>
      <div class="md-sidebar-toc"><ul>
<li><a href="#os-e05-%E5%AE%9E%E9%AA%8C%E9%A1%B9%E7%9B%AE05-bash%E6%A8%A1%E5%9D%97%E5%8C%96%E7%BC%96%E7%A8%8B%E4%B8%8E%E5%A4%9A%E8%BF%9B%E7%A8%8B%E5%B9%B6%E5%8F%91">OS-E05 &#x5B9E;&#x9A8C;&#x9879;&#x76EE;05&#xFF1A; Bash&#x6A21;&#x5757;&#x5316;&#x7F16;&#x7A0B;&#x4E0E;&#x591A;&#x8FDB;&#x7A0B;&#x5E76;&#x53D1;</a>
<ul>
<li><a href="#%E5%AE%9E%E9%AA%8C%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF">&#x5B9E;&#x9A8C;&#x57FA;&#x672C;&#x4FE1;&#x606F;</a></li>
<li><a href="#%E5%AE%9E%E9%AA%8C%E5%89%8D%E7%BD%AE%E6%9D%A1%E4%BB%B6">&#x5B9E;&#x9A8C;&#x524D;&#x7F6E;&#x6761;&#x4EF6;</a></li>
<li><a href="#%E5%AE%9E%E9%AA%8C%E9%A2%84%E5%A4%87%E7%9F%A5%E8%AF%86">&#x5B9E;&#x9A8C;&#x9884;&#x5907;&#x77E5;&#x8BC6;</a></li>
<li><a href="#%E5%AE%9E%E9%AA%8C%E6%B3%A8%E6%84%8F%E4%B8%8E%E8%AF%B4%E6%98%8E">&#x5B9E;&#x9A8C;&#x6CE8;&#x610F;&#x4E0E;&#x8BF4;&#x660E;</a></li>
<li><a href="#%E5%AE%9E%E9%AA%8C%E5%86%85%E5%AE%B9%E4%B8%8E%E5%AE%9E%E9%AA%8C%E6%8C%87%E5%BC%95">&#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x4E0E;&#x5B9E;&#x9A8C;&#x6307;&#x5F15;</a>
<ul>
<li><a href="#microscope-%E5%AE%9E%E9%AA%8C%E5%86%85%E5%AE%B9%E5%85%B7%E4%BD%93%E4%BB%BB%E5%8A%A1">&#x1F52C; &#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x5177;&#x4F53;&#x4EFB;&#x52A1;</a></li>
<li><a href="#ticket-%E5%AE%9E%E9%AA%8C%E7%BB%93%E6%9E%9C%E5%8F%82%E8%80%83%E6%88%AA%E5%9B%BE">&#x1F3AB; &#x5B9E;&#x9A8C;&#x7ED3;&#x679C;&#x53C2;&#x8003;&#x622A;&#x56FE;</a></li>
<li><a href="#bookmark-%E5%AE%9E%E9%AA%8C%E5%86%85%E5%AE%B9%E7%9B%B8%E5%85%B3%E7%9F%A5%E8%AF%86">&#x1F516; &#x5B9E;&#x9A8C;&#x5185;&#x5BB9;&#x76F8;&#x5173;&#x77E5;&#x8BC6;</a>
<ul>
<li><a href="#bash%E6%A8%A1%E5%9D%97%E5%8C%96">Bash&#x6A21;&#x5757;&#x5316;</a></li>
<li><a href="#bash%E5%A4%9A%E8%BF%9B%E7%A8%8B">Bash&#x591A;&#x8FDB;&#x7A0B;</a></li>
<li><a href="#bash%E5%91%BD%E4%BB%A4%E8%BF%90%E8%A1%8C%E4%B8%8E%E7%AE%97%E6%9C%AF%E8%BF%90%E7%AE%97">Bash&#x547D;&#x4EE4;&#x8FD0;&#x884C;&#x4E0E;&#x7B97;&#x672F;&#x8FD0;&#x7B97;</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#faq">FAQ</a></li>
</ul>
</li>
</ul>
</div>
      <a id="sidebar-toc-btn">&#x2261;</a>
    
    
    
    
    
    
    
    
<script>

var sidebarTOCBtn = document.getElementById('sidebar-toc-btn')
sidebarTOCBtn.addEventListener('click', function(event) {
  event.stopPropagation()
  if (document.body.hasAttribute('html-show-sidebar-toc')) {
    document.body.removeAttribute('html-show-sidebar-toc')
  } else {
    document.body.setAttribute('html-show-sidebar-toc', true)
  }
})
</script>
      
  
    </body></html>